home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / SQL and Data Base / Logic Works ERwin 3.5 / data.1 / FPGRID.BAS < prev    next >
Encoding:
BASIC Source File  |  1995-12-15  |  7.2 KB  |  246 lines

  1. '
  2. ' FarPoint Grid declarations
  3. '
  4. 'function prototypes
  5. Declare Function SaveTabFile Lib "FPGRID10.VBX" (SS As Control, ByVal FileName As String) As Integer
  6. Declare Function SetCellDirtyFlag Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long, ByVal Dirty As Integer) As Integer
  7. Declare Function GetCellDirtyFlag Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long) As Integer
  8. Declare Function fpGetText Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long, Var As Variant) As Integer
  9. Declare Sub fpSetText Lib "FPGRID10.VBX" (SS As Control, ByVal Col As Long, ByVal Row As Long, lpVar As Variant)
  10. Declare Function GetDataConnectHandle Lib "FPGRID10.VBX" (SS As Control)
  11. Declare Function GetDataSelectHandle Lib "FPGRID10.VBX" (SS As Control)
  12.  
  13. 'spreadsheet actions
  14. Global Const SS_ACTION_ACTIVE_CELL = 0
  15. Global Const SS_ACTION_SELECT_BLOCK = 2
  16. Global Const SS_ACTION_CLEAR = 3
  17. Global Const SS_ACTION_DELETE_COL = 4
  18. Global Const SS_ACTION_DELETE_ROW = 5
  19. Global Const SS_ACTION_INSERT_COL = 6
  20. Global Const SS_ACTION_INSERT_ROW = 7
  21. Global Const SS_ACTION_CLEAR_TEXT = 12
  22. Global Const SS_ACTION_DESELECT_BLOCK = 14
  23. Global Const SS_ACTION_DSAVE = 15
  24. Global Const SS_ACTION_RESET = 28
  25. Global Const SS_ACTION_VMODE_REFRESH = 30
  26. Global Const SS_ACTION_REFRESH_BOUND = 31
  27.  
  28. 'SelectBlockOptions
  29. Global Const SS_SELBLOCKOPT_COLS = 1
  30. Global Const SS_SELBLOCKOPT_ROWS = 2
  31. Global Const SS_SELBLOCKOPT_BLOCKS = 4
  32. Global Const SS_SELBLOCKOPT_ALL = 8
  33.  
  34. 'DAutoSize settings
  35. 'Global Const SS_AUTOSIZE_NONE = 0
  36. Global Const SS_AUTOSIZE_MAX_COL_WIDTH = 1
  37. Global Const SS_AUTOSIZE_BEST_GUESS = 2
  38.  
  39. 'cell type
  40. Global Const SS_CELL_TYPE_DATE = 0
  41. Global Const SS_CELL_TYPE_EDIT = 1
  42. Global Const SS_CELL_TYPE_FLOAT = 2
  43. Global Const SS_CELL_TYPE_INTEGER = 3
  44. Global Const SS_CELL_TYPE_PIC = 4
  45. Global Const SS_CELL_TYPE_STATIC_TEXT = 5
  46. Global Const SS_CELL_TYPE_TIME = 6
  47. Global Const SS_CELL_TYPE_BUTTON = 7
  48. Global Const SS_CELL_TYPE_COMBOBOX = 8
  49. Global Const SS_CELL_TYPE_PICTURE = 9
  50. Global Const SS_CELL_TYPE_CHECKBOX = 10
  51.  
  52. 'Bound. auto col sizing
  53. Global Const SS_BOUND_COL_NO_SIZE = 0
  54. Global Const SS_BOUND_COL_MAX_SIZE = 1
  55. Global Const SS_BOUND_COL_SMART_SIZE = 2
  56.  
  57. 'user resize row and columns
  58. Global Const SS_USER_RESIZE_COL = 1
  59. Global Const SS_USER_RESIZE_ROW = 2
  60.  
  61. 'scroll bar
  62. Global Const SS_SCROLLBAR_NONE = 0
  63. Global Const SS_SCROLLBAR_H_ONLY = 1
  64. Global Const SS_SCROLLBAR_V_ONLY = 2
  65. Global Const SS_SCROLLBAR_BOTH = 3
  66.  
  67. 'button types
  68. Global Const SS_CELL_BUTTON_NORMAL = 0
  69. Global Const SS_CELL_BUTTON_TWO_STATE = 1
  70.  
  71. 'button picture align
  72. Global Const SS_CELL_BUTTON_ALIGN_BOTTOM = 0
  73. Global Const SS_CELL_BUTTON_ALIGN_TOP = 1
  74. Global Const SS_CELL_BUTTON_ALIGN_LEFT = 2
  75. Global Const SS_CELL_BUTTON_ALIGN_RIGHT = 3
  76.  
  77. 'date formats
  78. Global Const SS_CELL_DATE_FORMAT_DDMONYY = 0
  79. Global Const SS_CELL_DATE_FORMAT_DDMMYY = 1
  80. Global Const SS_CELL_DATE_FORMAT_MMDDYY = 2
  81. Global Const SS_CELL_DATE_FORMAT_YYMMDD = 3
  82.  
  83. 'Static text vertical alignment
  84. Global Const SS_CELL_STATIC_V_ALIGN_BOTTOM = 0
  85. Global Const SS_CELL_STATIC_V_ALIGN_CENTER = 1
  86. Global Const SS_CELL_STATIC_V_ALIGN_TOP = 2
  87.  
  88. 'Time
  89. Global Const SS_CELL_TIME_12_HOUR_CLOCK = 0
  90. Global Const SS_CELL_TIME_24_HOUR_CLOCK = 1
  91.  
  92. 'Unit type
  93. Global Const SS_CELL_UNIT_NORMAL = 0
  94. Global Const SS_CELL_UNIT_VGA = 1
  95. Global Const SS_CELL_UNIT_TWIPS = 2
  96.  
  97. 'horizontal align
  98. Global Const SS_CELL_H_ALIGN_LEFT = 0
  99. Global Const SS_CELL_H_ALIGN_RIGHT = 1
  100. Global Const SS_CELL_H_ALIGN_CENTER = 2
  101.  
  102. 'EditmodeAction
  103. Global Const SS_CELL_EDITMODE_EXIT_NONE = 0
  104. Global Const SS_CELL_EDITMODE_EXIT_UP = 1
  105. Global Const SS_CELL_EDITMODE_EXIT_DOWN = 2
  106. Global Const SS_CELL_EDITMODE_EXIT_LEFT = 3
  107. Global Const SS_CELL_EDITMODE_EXIT_RIGHT = 4
  108. Global Const SS_CELL_EDITMODE_EXIT_NEXT = 5
  109. Global Const SS_CELL_EDITMODE_EXIT_PREVIOUS = 6
  110.  
  111. Sub er_fpGridAdvance(grid As Control, AdvanceNext As Integer)
  112.     Dim lRow As Long
  113.  
  114.     ' If trying to go backward from row 1, do nothing
  115.     If AdvanceNext = False Then Exit Sub
  116.  
  117.     lRow = grid.ActiveRow
  118.     If er_fpIsRowBlank(grid, lRow) Then
  119.         Beep
  120.         Exit Sub
  121.     End If
  122.  
  123.     If AdvanceNext = True Then
  124.         'grid.VirtualMaxRows = grid.VirtualMaxRows + 1
  125.         grid.Row = grid.ActiveRow + 1
  126.         grid.Col = 1
  127.         grid.Action = SS_ACTION_INSERT_ROW
  128.         grid.Action = SS_ACTION_ACTIVE_CELL
  129.         grid.EditMode = True
  130.         Beep
  131.     End If
  132.  
  133. End Sub
  134.  
  135. Sub er_fpGridDelete(ds As Data, grid As Control)
  136.     grid.Row = grid.ActiveRow
  137.     grid.Col = grid.ActiveCol
  138.     On Error GoTo GridDelete_Handler
  139.     ds.Recordset.Delete
  140.     grid.Action = SS_ACTION_ACTIVE_CELL
  141.     grid.SetFocus
  142.     Exit Sub
  143.  
  144. GridDelete_Handler:
  145.     If Err = 3197 Then
  146.         ' Error is "data has changed, operation stopped"
  147.         'ds.Recordset.Update
  148.         Resume
  149.     End If
  150.  
  151.     MsgBox "Error:" & Str(Err) & " - " & Error(Err)
  152.     Resume Next
  153.  
  154. End Sub
  155.  
  156. Function er_fpIsRowBlank(grid As Control, lRow As Long) As Integer
  157.     Dim lCol As Long
  158.     Dim vValue As Variant
  159.     Dim iDummy As Integer
  160.  
  161.     For lCol = 1 To grid.MaxCols
  162.         iDummy = fpGetText(grid, lCol, lRow, vValue)
  163.         If vValue <> "" Then
  164.             er_fpIsRowBlank = False
  165.             Exit Function
  166.         End If
  167.     Next lCol
  168.     er_fpIsRowBlank = True
  169.  
  170. End Function
  171.  
  172. ' <<UNDER CONSTRUCTION, DO NOT USE!!>>
  173. Sub er_fpPopulateCombo(grid As Control, sItem() As String, iCount As Integer, iWidth As Integer)
  174.     Dim sList As String
  175.     Dim sNewItem As String
  176.     Dim i As Integer
  177.  
  178.     For i = 1 To iCount
  179.         'Add delimiter between combo items
  180.         If i > 1 Then
  181.             sNewItem = Chr(9)
  182.         Else
  183.             sNewItem = ""
  184.         End If
  185.  
  186.         'Add item to list
  187.         sNewItem = sNewItem & sItem(i)
  188.         sNewItem = sNewItem & Space(iWidth - Len(sItem(i)))
  189.         sList = sList & sNewItem
  190.  
  191.     Next i
  192.  
  193.     'Populate combo with list
  194.     grid.TypeComboBoxList = sList
  195.  
  196. End Sub
  197.  
  198. '-------------------------------------------------------
  199. ' Repopulates a grid based on the RecordSource property
  200. ' of the bound data control
  201. ' Params:
  202. '   ds:     bound data control
  203. '   grid:   grid control
  204. '-------------------------------------------------------
  205. Sub er_fpRefresh(ds As Data, grid As Control)
  206.     'grid.ReDraw = False
  207.     ds.Refresh
  208.     'grid.ReDraw = True
  209.     grid.EditModePermanent = False
  210.     grid.EditMode = False
  211.  
  212.     ' Make sure that the current row is not past end of result set
  213.     If grid.ActiveRow > ds.Recordset.RecordCount Then
  214.         grid.Row = ds.Recordset.RecordCount
  215.         If grid.Row < 1 Then grid.Row = 1
  216.         grid.Action = SS_ACTION_ACTIVE_CELL
  217.     End If
  218.  
  219.     'grid.EditMode = True
  220.     grid.EditModePermanent = True
  221.     
  222. End Sub
  223.  
  224. Sub er_fpShowCurrRow(grid As Control)
  225.     grid.Col = -1
  226.     grid.Row = -1
  227.     grid.BackColor = RGB(255, 255, 255)
  228.  
  229.     grid.Row = grid.ActiveRow
  230.     grid.BackColor = RGB(255, 255, 0)
  231.  
  232. End Sub
  233.  
  234. Sub er_fpUpdate(ds As Data, grid As Control)
  235.     ' "Update" the current row by moving to a new row.
  236.     Dim iErr As Integer
  237.  
  238.     iErr = SetCellDirtyFlag(grid, grid.ActiveCol, grid.ActiveRow, True)
  239.     grid.EditModePermanent = False
  240.     grid.EditMode = False
  241.     ds.Recordset.Update
  242.     grid.EditModePermanent = True
  243.  
  244. End Sub
  245.  
  246.